icon-theme: Add ScaledDirectories support
authorAlexander Larsson <alexl@redhat.com>
Mon, 19 Aug 2013 13:42:30 +0000 (15:42 +0200)
committerAlexander Larsson <alexl@redhat.com>
Mon, 19 Aug 2013 14:01:57 +0000 (16:01 +0200)
For backwards compat support we don't want old implementations not
supporting scaling to see the new scaled directories, so move these
to a separate list.

gtk/gtkicontheme.c

index b6066062fcff51004ec77cb89b426e9a41c28bab..b1e02a89df045bae8165bd652f65906ed7b86341 100644 (file)
@@ -1085,6 +1085,7 @@ insert_theme (GtkIconTheme *icon_theme, const char *theme_name)
   int i;
   GList *l;
   char **dirs;
+  char **scaled_dirs;
   char **themes;
   GtkIconThemePrivate *priv;
   IconTheme *theme = NULL;
@@ -1169,7 +1170,9 @@ insert_theme (GtkIconTheme *icon_theme, const char *theme_name)
       g_key_file_free (theme_file);
       return;
     }
-  
+
+  scaled_dirs = g_key_file_get_string_list (theme_file, "Icon Theme", "ScaledDirectories", NULL, NULL);
+
   theme->comment = 
     g_key_file_get_locale_string (theme_file, 
                                  "Icon Theme", "Comment",
@@ -1183,7 +1186,13 @@ insert_theme (GtkIconTheme *icon_theme, const char *theme_name)
   for (i = 0; dirs[i] != NULL; i++)
     theme_subdir_load (icon_theme, theme, theme_file, dirs[i]);
 
+  if (scaled_dirs)
+    {
+      for (i = 0; scaled_dirs[i] != NULL; i++)
+        theme_subdir_load (icon_theme, theme, theme_file, scaled_dirs[i]);
+    }
   g_strfreev (dirs);
+  g_strfreev (scaled_dirs);
 
   theme->dirs = g_list_reverse (theme->dirs);